Fix serial output of carriage return when using high-bit stream muxing.
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 19 Dec 2007 15:02:05 +0000 (15:02 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 19 Dec 2007 15:02:05 +0000 (15:02 +0000)
Original patch by Dan Doucette.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/drivers/char/serial.c

index a9c91e87ebec3e2180ef9bb000a99c02b63caa16..2cbb475dab254cd8e7c6b14bf0500dd1de75e028 100644 (file)
@@ -137,7 +137,7 @@ void serial_putc(int handle, char c)
     spin_lock_irqsave(&port->tx_lock, flags);
 
     if ( (c == '\n') && (handle & SERHND_COOKED) )
-        __serial_putc(port, '\r');
+        __serial_putc(port, '\r' | ((handle & SERHND_HI) ? 0x80 : 0x00));
 
     if ( handle & SERHND_HI )
         c |= 0x80;
@@ -167,7 +167,7 @@ void serial_puts(int handle, const char *s)
     while ( (c = *s++) != '\0' )
     {
         if ( (c == '\n') && (handle & SERHND_COOKED) )
-            __serial_putc(port, '\r');
+            __serial_putc(port, '\r' | ((handle & SERHND_HI) ? 0x80 : 0x00));
 
         if ( handle & SERHND_HI )
             c |= 0x80;